#ifndef IMAGEEDITINTERFACE_H
#define IMAGEEDITINTERFACE_H


#include <QObject>
class QJsonObject;
class DcmFileFormat;

typedef void (*EditorProc)(const QJsonObject &json, void *userData);

class ImageEditInterface
{
public:
    virtual ~ImageEditInterface() {}

    virtual QObject *getObject() = 0;
    virtual void setFileFormat(DcmFileFormat *dff) = 0;
    virtual void setEditorHook(EditorProc proc, void *userData) = 0;
    virtual void setTransform(bool rl, bool rr, bool fh, bool fv) = 0;
    virtual void getWindow(double &center, double &width) const = 0;
    virtual void setWindow(const double &center, const double &width) = 0;
    virtual void getClipRect(QRect &rect) const = 0;
    virtual void setClipRect(const QRect &rect) = 0;
};

#define ImageEditPlugin_iid "com.zmg.dr.plugin.imageedit.v100"
Q_DECLARE_INTERFACE(ImageEditInterface, ImageEditPlugin_iid)


#endif // IMAGEEDITINTERFACE_H
